package schuchert.agent;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.Reader;

import org.junit.Test;

public class ManifestTest {
    @Test
    public void manifestHasCorrectClassName() throws Exception {
        FileReader reader = null;
        BufferedReader bufferedReader = null;

        try {
            reader = new FileReader("META-INF/MANIFEST.MF");
            assertNotNull(reader);
            bufferedReader = new BufferedReader(reader);
            String line = null;
            String expected = String.format("Premain-Class: %s", ConfigurableClassFileTransformerRegistrar.class
                    .getName());
            while ((line = bufferedReader.readLine()) != null) {
                if (line.equals(expected))
                    return;
            }
            fail(String.format("Did not find line matching: '%s' -- was class renamed?", expected));
        } finally {
            if (bufferedReader != null) {
                bufferedReader.close();
            }
            if (reader != null)
                reader.close();
        }
    }
    
    private void closeIfNotNull(Reader reader) {
        if(reader != null)
            reader.close();
    }
}
